<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ex="http://www.opengis.net/examples" targetNamespace="http://www.opengis.net/examples" elementFormDefault="qualified" xml:lang="en">
	<annotation>
		<documentation>
			<name>typedValues.xsd</name>
			<scope>How to encode operation parameter values with specific types, including length, angle, and scale measures.. </scope>
			<description>Example Application Schema to encode operation parameter values with specific types. Builds on measures.xsd, and follows same GML 3 patterns. Written in the "ex" namespace. Primary editor: Arliss Whiteside. Last updated 2005-01-28</description>
			<copyright>Copyright (c) Open Geospatial consortium (2005) </copyright>
		</documentation>
	</annotation>
	<!-- ======================================================
       includes and imports
	====================================================== -->
	<import namespace="http://www.opengis.net/gml" schemaLocation="../../gml/3.1.1/base/coordinateOperations.xsd"/>
	<!-- ======================================================
       elements and types
	====================================================== -->
	<complexType name="StringValueType">
		<annotation>
			<documentation>Alphanumeric text operation parameter value. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="gml:stringValue"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="IntegerValueType">
		<annotation>
			<documentation>Integer operation parameter value. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="gml:integerValue"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="LengthValueType">
		<annotation>
			<documentation>Length measure operation parameter value. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="ex:lengthValue"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="ScaleValueType">
		<annotation>
			<documentation>Scale measure operation parameter value. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="ex:scaleValue"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="AngleValueType">
		<annotation>
			<documentation>Angle measure operation parameter value. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="ex:angleValue"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="AngleOrLengthValueType">
		<annotation>
			<documentation>Angle or Length measure operation parameter value, sometimes used for horizontal coordinate parameters. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<choice>
						<element ref="ex:angleValue"/>
						<element ref="ex:lengthValue"/>
					</choice>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="TimeValueType">
		<annotation>
			<documentation>Time measure operation parameter value. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="ex:gridLengthValue"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="GridLengthValueType">
		<annotation>
			<documentation>Grid Length measure operation parameter value. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="ex:gridLengthValue"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="SpeedValueType">
		<annotation>
			<documentation>Velocity measure operation parameter value. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="ex:speedValue"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="IntegerListValueType">
		<annotation>
			<documentation>Ordered sequence of two or more integer operation parameter values. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="gml:integerValueList"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="LengthListValueType">
		<annotation>
			<documentation>Ordered sequence of two or more Length operation parameter values.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="ex:lengthValueList"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="ScaleListValueType">
		<annotation>
			<documentation>Ordered sequence of two or more Scale Factor operation parameter values. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="ex:scaleValueList"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="AngleListValueType">
		<annotation>
			<documentation>Ordered sequence of two or more Angle operation parameter values. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="ex:angleValueList"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="TimeListValueType">
		<annotation>
			<documentation>Ordered sequence of two or more Time operation parameter values. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="ex:timeValueList"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="GridLengthListValueType">
		<annotation>
			<documentation>Ordered sequence of two or more Grid Length operation parameter values. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="ex:gridLengthValueList"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="SpeedListValueType">
		<annotation>
			<documentation>Ordered sequence of two or more Velocity operation parameter values. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="ex:speedValueList"/>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<!-- =================================================== -->
	<element name="lengthValue" type="gml:LengthType" substitutionGroup="gml:value">
		<annotation>
			<documentation>Length value of an operation parameter, with a unit of measure suitable for a length, such as metres or feet. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="scaleValue" type="gml:ScaleType" substitutionGroup="gml:value">
		<annotation>
			<documentation>Scale factor value of an operation parameter, with a unit of measure suitable for a scale factor, such as one, percent, permil, or parts-per-million. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="angleValue" type="gml:AngleType" substitutionGroup="gml:value">
		<annotation>
			<documentation>Angle value of an operation parameter, recorded as a single number, with a unit of measure suitable for an angle, such as degrees or radians. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="timeValue" type="gml:TimeType" substitutionGroup="gml:value">
		<annotation>
			<documentation>Time value of an operation parameter, recorded as a single number, with a unit of measure suitable for a time value, such as seconds or days. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="gridLengthValue" type="gml:GridLengthType" substitutionGroup="gml:value">
		<annotation>
			<documentation>Grid length value of an operation parameter, with a unit of measure suitable for length along the axes of a grid, such as pixel spacings or grid spacings. Used when the grid spacing does not have any associated physical units, or does not have a constant physical spacing. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="speedValue" type="gml:SpeedType" substitutionGroup="gml:value">
		<annotation>
			<documentation>Speed value of an operation parameter, with a unit of measure suitable for a speed, such as metres per second or miles per hour. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="lengthValueList" type="gml:MeasureListType" substitutionGroup="gml:valueList">
		<annotation>
			<documentation>Ordered sequence of two or more length values of an operation parameter, with a unit of measure suitable for a length, such as metres or feet. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="scaleValueList" type="gml:MeasureListType" substitutionGroup="gml:valueList">
		<annotation>
			<documentation>Ordered sequence of two or more scale factor values of an operation parameter, with a unit of measure suitable for a scale factor, such as one, percent, permil, or parts-per-million. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="angleValueList" type="gml:MeasureListType" substitutionGroup="gml:valueList">
		<annotation>
			<documentation>Ordered sequence of two or more angle values of an operation parameter, each recorded as a single number, with a unit of measure suitable for an angle, such as degrees or radians. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="timeValueList" type="gml:MeasureListType" substitutionGroup="gml:valueList">
		<annotation>
			<documentation>Ordered sequence of two or more time values of an operation parameter, each recorded as a single number, with a unit of measure suitable for a time value, such as seconds or days. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="gridLengthValueList" type="gml:MeasureListType" substitutionGroup="gml:valueList">
		<annotation>
			<documentation>Ordered sequence of two or more grid length values of an operation parameter, with a unit of measure suitable for length along the axes of a grid, such as pixel spacings or grid spacings. Used when the grid spacing does not have any associated physical units, or does not have a constant physical spacing. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="speedValueList" type="gml:MeasureListType" substitutionGroup="gml:valueList">
		<annotation>
			<documentation>Ordered sequence of two or more spped values of an operation parameter, with a unit of measure suitable for a speed, such as metres per second or miles per hour. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
</schema>
